<?php

/*
 * Noticias
 * Listado de noticias
 * ABM de noticias
*/

class Noticias extends Controller {

    function Noticias() {
        parent::Controller();
        $this->load->library('session');
        if(!$this->session->userdata('logged_in'))
            redirect('/home/');
        $this->load->language('general',$this->session->userdata('lenguaje'));
    }

    function index() {
        $datos['titulo_pagina'] = 'Noticias';

        $this->load->library("pagination");
        $this->load->view('admin/encabezado_admin.php', $datos);
        $this->load->view('admin/menu_admin.php');
        $sql = 'SELECT * FROM min_noticias ORDER BY peso ASC, peso_2 DESC';

        //Paginador
        $query = $this->db->query($sql);//para calcular la cantidad de registros
        $config["base_url"]   = base_url().index_page().'/admin/index';//Carga parametros para la funcion Pagination
        $config["total_rows"] = $query->num_rows();
        $config["per_page"]   = '15';
        $config["first_link"] = "Primero";
        $config["last_link"]  = "Ultimo";
        $this->pagination->initialize($config);
        $num = $this->uri->segment(3);

        //Agrega Paginacion en el sql
        if ($num=='')
            $num=0;
        if($config["per_page"] != -1)
            $sql .= " limit ";
        if($config["per_page"] != -1 AND $num != -1)
            $sql .= "$num,";
        if($config["per_page"] != -1)
            $sql .= $config["per_page"];

        $consulta['contenido'] = $this->db->query($sql);
        $this->load->view('admin/noticias.php',$consulta);
        $this->load->view('admin/pie_admin.php');
    }

    function post() {
        $tabla       = "min_noticias";
        $page        = $this->input->post('page');
        $limit       = $this->input->post('rows');
        $sidx        = $this->input->post('sidx');
        $sord        = $this->input->post('sord');
        $_search     = $this->input->post('_search');
        $searchField = $this->input->post('searchField');
        $searchString= $this->input->post('searchString');

        $where = "";
        if ($_search=='true')
            $where = " WHERE $searchField LIKE '%$searchString%' ";


        if(!$sidx) $sidx =1;

        $sql    = "SELECT * FROM $tabla $where";
        //echo $sql;
        $query  = $this->db->query($sql);
        $result = $query->result();

        $count  = count($result);

        if( $count > 0 && $limit > 0) {
            $total_pages = ceil($count/$limit);
        } else {
            $total_pages = 0;
        }

        if ($page > $total_pages) $page=$total_pages;
        $start = $limit*$page - $limit;
        if($start <0) $start = 0;

        $sql    = "SELECT * FROM $tabla $where ORDER BY $sidx $sord LIMIT $start , $limit";
        $query  = $this->db->query($sql);
        $result = $query->result();


        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
        header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
        header("Cache-Control: no-cache, must-revalidate" );
        header("Pragma: no-cache" );
        header("Content-type: text/x-json");
        $i=0;
        $data['page']= $page;
        $data['total']= $total_pages;

        foreach ($query->result() as $row) {
            $data['rows'][$i]['id']= $row->id;
            $data['rows'][$i]['cell'][]= $row->id;
            $data['rows'][$i]['cell'][]= utf8_encode($row->nombre);
            $data['rows'][$i]['cell'][]= '<a href="#" id="b'.$i.'">clic para ver</a>';
            $data['rows'][$i]['cell'][]= utf8_encode($row->tipo);
            $data['rows'][$i]['cell'][]= utf8_encode($row->peso);
            $data['rows'][$i]['cell'][]= utf8_encode($row->empresa);
            $data['rows'][$i]['cell'][]= "<a href='".base_url()."index.php/admin/usuarios/generar_tarjeta/$row->id'>Generar Tarjeta<a/>";
            $i++;
        }
        echo json_encode($data);
    }



    function crear() {
        $datos['titulo_pagina'] = 'Noticias';
        $this->load->view('admin/encabezado_admin.php', $datos);
        $this->load->view('admin/menu_admin.php');

        $consulta['fck1'] = "";
        $consulta['fck2'] = "";
        $this->load->model('noticias/modelo_noticias');
        $this->modelo_noticias->get_orden_peso();
        $this->load->view('admin/am_noticia.php',$consulta);
        $this->load->view('admin/pie_admin.php');
    }

    function editar() {
        $id = $this->uri->segment(4);
        $datos['titulo_pagina'] = 'Noticias';
        $this->load->view('admin/encabezado_admin.php', $datos);
        $this->load->view('admin/menu_admin.php');
        $this->load->model('noticias/modelo_noticias');
        $this->modelo_noticias->get_noticia($id);
        $this->modelo_noticias->get_orden_peso();
        $this->load->view('admin/am_noticia.php');
        $this->load->view('admin/pie_admin.php');
    }

    function guardar() {
        $id             = $this->input->post('id');
        $texto          = $this->input->post('fck1');
        $texto_ampliado = $this->input->post('fck2');
        $nombre         = $this->input->post('nombre');
        $peso           = $this->input->post('peso');
        $tipo           = $this->input->post('tipo');
        $empresa        = $this->input->post('empresa');
        $this->load->model('noticias/modelo_noticias');
        $this->modelo_noticias->set_noticias($id,$texto,$texto_ampliado,$nombre,$peso,$tipo,$empresa);
        redirect('/admin/noticias');
    }

    function eliminar() {
        $id = $this->uri->segment(4);
        $query = $this->db->query("DELETE from min_noticias WHERE id=".$id);
        redirect('/admin/noticias');
    }


///////////////////////////////////////////////////
//////////////////////////////////////////////////

    function upload_image() {
        $dato['id'] = $this->uri->segment(4);
        $this->load->view('admin/upload_image',$dato);
    }

    function do_upload() {
        $config['upload_path'] = './upload/';
        $config['allowed_types'] = 'gif|jpg|png';
        // $config['max_size'] = '100';
        // $config['max_width'] = '1024';
        // $config['max_height'] = '768';

        $this->load->library('upload', $config);

        if ( ! $this->upload->do_upload()) {
            $error = array('error' => $this->upload->display_errors());
            $this->load->view('admin/upload_image', $error);
        } else {
            $data = $this->upload->data();
            $imagen= "upload/".$data['file_name'];
            //$imagen es la ruta en el servidor de la imagen subida
            //$imagen = "test/imagen.jpg";

            //$id es el nombre que queremos darle, en mi caso es el id
            // de la noticia insertada
            //$id = "3976";
            $id      = $this->input->post('id');
            $archivo = $this->input->post('nombre');

            $im = NULL;

            //dependiendo de la extensión creamos el recurso de la imagen
            if(stristr($imagen, 'jpg')) {
                $im = imagecreatefromjpeg($imagen);
            }
            if(stristr($imagen, 'gif')) {
                $im = imagecreatefromgif($imagen);
            }
            if(stristr($imagen, 'png')) {
                $im = imagecreatefrompng($imagen);
            }

            //Si el archivo tenia extensión JPG, GIF o PNG está permitido y tendremos una imagen cargada
            if($im !== NULL) {
                //El archivo se llamara
                $path="thumb/";
                $nombreth = $path . $id . $archivo . '.jpg';
                $path="mid/";
                $nombremd = $path . $id . $archivo . '.jpg';
                $path="big/";
                $nombre = $path . $id . $archivo . '.jpg';

                //Primero creamos la imagen grande. Nuestros limites son 500px de alto y 800px de ancho
                if(imagesy($im) > 600) {
                    $ancho = imagesx($im) * 600 / imagesy($im);
                    $dest = imagecreatetruecolor($ancho, 600);

                    imagecopyresampled($dest, $im, 0, 0, 0, 0, $ancho, 600, imagesx($im), imagesy($im));
                    imagejpeg($dest, $nombre);
                    chmod($nombre,0777);
                    imagedestroy($dest);
                } elseif(imagesx($im) > 800) {
                    $alto = imagesy($im) * 800 / imagesx($im);
                    $dest = imagecreatetruecolor(800, $alto);

                    imagecopyresampled($dest, $im, 0, 0, 0, 0, 800, $alto, imagesx($im), imagesy($im));
                    imagejpeg($dest, $nombre, 90);
                    chmod($nombre,0777);
                    imagedestroy($dest);
                } else {
                    imagejpeg($im, $nombre);
                    chmod($nombre,0777);
                }

                //La mediana creamos la imagen. Nuestros limites son 470px de alto y 397px de ancho
                if(imagesy($im) > 470) {
                    $ancho = imagesx($im) * 470 / imagesy($im);
                    $dest = imagecreatetruecolor($ancho, 470);

                    imagecopyresampled($dest, $im, 0, 0, 0, 0, $ancho, 470, imagesx($im), imagesy($im));
                    //                    imagecopyresampled($dest, $im, 0, 0, 0, 0, 397, 470, imagesx($im), imagesy($im));
                    imagejpeg($dest, $nombremd);
                    chmod($nombremd,0777);
                    imagedestroy($dest);
                } elseif(imagesx($im) > 397) {
                    $alto = imagesy($im) * 397 / imagesx($im);
                    $dest = imagecreatetruecolor(397, $alto);

                    imagecopyresampled($dest, $im, 0, 0, 0, 0, 397, $alto, imagesx($im), imagesy($im));
                    //                    imagecopyresampled($dest, $im, 0, 0, 0, 0, 397, 470, imagesx($im), imagesy($im));
                    imagejpeg($dest, $nombremd, 90);
                    chmod($nombremd,0777);
                    imagedestroy($dest);
                } else {
                    imagejpeg($im, $nombremd);
                    chmod($nombremd,0777);
                }


                //Segundo creamos la miniatura de la noticia con un ancho máximo de 71px (el alto se calcula
                // en función del ancho)
                $alto = imagesy($im) * 81 / imagesx($im);
                $dest = imagecreatetruecolor(81, $alto);

                imagecopyresampled($dest, $im, 0, 0, 0, 0, 81, $alto, imagesx($im), imagesy($im));
                imagejpeg($dest, $nombreth, 90);
                chmod($nombre,0777);
                imagedestroy($dest);
                imagedestroy($im);

                //Opcionalmente podemos borrar el archivo original y liberar espacio en disco duro
                unlink($imagen);
            }
            redirect('/admin/categorias');
            //$this->load->view('upload_success', $data);
        }
    }


}
?>